package academic.nantes.teamsync.webservices;

import java.util.ArrayList;

import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONObject;

import academic.nantes.teamsync.DAO.TeamSyncLink;
import academic.nantes.teamsync.DAO.TeamSyncProject;
import academic.nantes.teamsync.DAO.TeamSyncMessage;
import academic.nantes.teamsync.DAO.TeamSyncUser;
import android.util.Log;

public class AjouterUnMessageOuUneNote extends WebServiceTeamSync implements WebServiceInterface{

	private static final String WS_NAME = "addRem";
	
	public AjouterUnMessageOuUneNote(int type, String sujet, String message) {
		super(WS_NAME);
		// TODO Auto-generated constructor stub
		this.webServiceParams.add(new BasicNameValuePair("sujet", sujet));
		this.webServiceParams.add(new BasicNameValuePair("message", message));
		this.webServiceParams.add(new BasicNameValuePair("type", Integer.toString(type)));
		this.webServiceParams.add(new BasicNameValuePair("idU", Integer.toString(TeamSyncUser.getInstance().getUid())));
		this.webServiceParams.add(new BasicNameValuePair("idP", Integer.toString(TeamSyncProject.getInstance().getIdProject())));
	}

	public TeamSyncMessage executeWebService(){

		// remarque, valeur de retour
		TeamSyncMessage messageOuNote = null;
		
		beforeExec();

		try {
			super.executeWebServiceBase();

			JSONArray jArray = ParsingJSON.parseJSON(this.result);


			if (jArray.length() >0) {
				if (jArray.length() == 1 ) {
					JSONObject json_data = jArray.getJSONObject(0);
					if(json_data.length() == 2){
						resultatWS = json_data.getString("result");
						if(resultatWS.equals("OK")){
							JSONObject messageOuNoteJSON = json_data.getJSONObject("remarque");

							JSONArray liensJSON = messageOuNoteJSON.getJSONArray("liens");
							ArrayList<TeamSyncLink> liens = new ArrayList<TeamSyncLink>(); 
							if(liensJSON.length()>0){
								for(int j = 0 ; j < liensJSON.length() ; j++){
									JSONObject lienJSON = liensJSON.getJSONObject(j);
									TeamSyncLink lien = new TeamSyncLink(
											lienJSON.getString("nom"), 
											lienJSON.getString("url"),
											Integer.parseInt(lienJSON.getString("id_lien"))
											);
									liens.add(lien);
								}
							}
							
							messageOuNote = new TeamSyncMessage(
									Integer.parseInt(messageOuNoteJSON.getString("id_message")), 
									messageOuNoteJSON.getString("auteur"), 
									messageOuNoteJSON.getString("date_message"), 
									messageOuNoteJSON.getString("lib_message"), 
									messageOuNoteJSON.getString("msg_message"), 
									Integer.parseInt(messageOuNoteJSON.getString("id_user")),
									liens
								);
						}
						else{
							Log.e("ajouteruneremarque_executewebservice", "erreur lors de l'ajout de la remarque " + json_data.getString("detail"));
						}
					}
				}
			}
		}
		catch(Exception e){
			Log.e("ajouteruneremarque_executewebservice","Erreur d'exec du ws ConnecUtil " + e.toString());
		}

		afterExec();
		
		return messageOuNote;
	}
}
